package net.toload.main.hd.test; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Random; import android.test.AndroidTestCase; import android.util.Log; import android.util.Pair; import net.toload.main.hd.global.Mapping; import net.toload.main.hd.limedb.LimeDB; public class Limedbtest extends AndroidTestCase { private final String TAG = "LimeDBTest"; private final static String TEST_KEY = "1234567890qwertyuiopasdfghjkl;zxcvbnm,./-"; private List<String> keyList; @Override protected void setUp() throws Exception { super.setUp(); } @Override protected void tearDown() throws Exception { super.tearDown(); } public void testLoadDB(){ LimeDB db = new LimeDB(getContext()); assertNotNull (db); } public void testQuery(){ LimeDB db = new LimeDB(getContext()); assertNotNull (db); db.setTablename("phonetic"); buildKeyMap(); int count=0; int limit = 100; long timelimit = 200; HashSet<String> duplityCheck = new HashSet<String>(); Random randomGenerator = new Random(); while(count<limit){ int i = randomGenerator.nextInt(keyList.size()); int j = randomGenerator.nextInt(keyList.size()); int k = randomGenerator.nextInt(keyList.size()); int l = randomGenerator.nextInt(keyList.size()); String code = keyList.get(i)+keyList.get(j)+keyList.get(k)+keyList.get(l); //SQLiteDatabase dbadapter = db.getSqliteDb(true); //Log.i(TAG,"code=" + code); for(int m=1; m<4; m++){ String query_code = code.substring(0, m); if(duplityCheck.add(query_code)){ long begin = System.currentTimeMillis(); //Log.i(TAG,"query_code="+ query_code); Pair<List<Mapping>,List<Mapping>> temp = db.getMapping(query_code, true, true); long elapsed = System.currentTimeMillis() - begin; int resultsize=0, relatedsize=0; if(temp.first!=null) resultsize = temp.first.size(); if(temp.second!=null) relatedsize = temp.second.size(); Log.i(TAG,"testQuery("+count+"):query_code="+ query_code + ", resultlist.size=" +resultsize +", realtedList.size="+relatedsize +", query time=" + elapsed + "ms"); assertTrue("Qery time longer than " + timelimit + " ms", elapsed <timelimit); count++; } } } } private void buildKeyMap(){ String keyString = TEST_KEY; keyList = new ArrayList<String>(); for (int i = 0; i < keyString.length(); i++) { keyList.add( keyString.substring(i, i + 1)); } } }